/**
 * Math.random()随机 0 - 1之间的数 不包括1   0<= x < 1
 * @example getRandomInt(3, 5)  => 3 <= x < 6
 * @param {Number} min
 * @param {Number} max
 */
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min)
}

// Math.random()随机0 - 1之间的小数，不包括 1
export function shuffle(arr) {
  let _arr = arr.slice();
  for (let i = 0; i < arr.length; i++) {
    // 0 - i 之间随机取出一个数 包括max
    let j = getRandomInt(0, i)
    let t = _arr[i];
    _arr[i] = _arr[j];
    _arr[j] = t;
  }
  return _arr
}

// 节流函数
export function debounce(func, delay) {
  let timer
  return function (...args) {
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      func.apply(this, args)
    }, delay)
  }
}